#pragma once 


///一个合约代码类型
typedef char STD_InstrumentIDType[81];  // 注意 由于mini 1.6.0 版本长度为81， 这里同步更新， 需要关注对ctp平推的影响

///交易所代码类型
typedef char STD_ExchangeIDType[9];

///合约名称类型

typedef char STD_InstrumentNameType[21];


///合约在交易所的代码类型
typedef char STD_ExchangeInstIDType[81]; // 注意 由于mini 1.6.0 版本长度为81， 这里同步更新， 需要关注对ctp平推的影响


/////////////////////////////////////////////////////////////////////////
///TFtdcOldInstrumentIDType是一个合约代码类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_OldInstrumentIDType[31];

/////////////////////////////////////////////////////////////////////////
///TFtdcOldExchangeInstIDType是一个合约在交易所的代码类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_OldExchangeInstIDType[31];


///TFtdcBrokerIDType是一个经纪公司代码类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_BrokerIDType[11];


///TFtdcInvestorIDType是一个投资者代码类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_InvestorIDType[13];

///TFtdcUserIDType是一个用户代码类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_UserIDType[16];


/////////////////////////////////////////////////////////////////////////
///TFtdcProductInfoType是一个产品信息类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_ProductInfoType[11];

///TFtdcAppIDType是一个App代码类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_AppIDType[33];


typedef char  STD_SystemNameType[41];

/////////////////////////////////////////////////////////////////////////
///TFtdcAppTypeType是一个用户App类型类型
/////////////////////////////////////////////////////////////////////////
///直连的投资者
#define THOST_FTDC_APP_TYPE_Investor '1'
///为每个投资者都创建连接的中继
#define THOST_FTDC_APP_TYPE_InvestorRelay '2'
///所有投资者共享一个操作员连接的中继
#define THOST_FTDC_APP_TYPE_OperatorRelay '3'
///未知
#define THOST_FTDC_APP_TYPE_UnKnown '4'

typedef char STD_AppTypeType;



//  账户名类型 
typedef char STD_Account[17];


///TFtdcYearType是一个年份类型
/////////////////////////////////////////////////////////////////////////
typedef int STD_YearType;


///TFtdcMonthType是一个月份类型
/////////////////////////////////////////////////////////////////////////
typedef int STD_MonthType;


// 时间（毫秒）类型
typedef int STD_MillisecType;


///  时间（纳秒）类型
typedef unsigned long long STD_Nanosecond;


///TFtdcTimeType是一个时间类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_TimeType[9];

///日期类型
typedef char STD_DateType[9];






//数量类型， 合约对应的手数 
typedef int STD_VolumeType;


///TFtdcLargeVolumeType是一个大额数量类型
/////////////////////////////////////////////////////////////////////////
typedef double STD_LargeVolumeType;

//前置编号类型
typedef int STD_FrontIDType;


//会话编号类型
typedef int STD_SessionIDType;


//请求编号类型
typedef int STD_RequestIDType;




// 价格类型
typedef double STD_PriceType;


///TFtdcMoneyType是一个资金类型
typedef double STD_MoneyType;

//合约数量乘数类型
typedef int STD_VolumeMultipleType;


///TFtdcUnderlyingMultipleType是一个基础商品乘数类型
/////////////////////////////////////////////////////////////////////////
typedef double STD_UnderlyingMultipleType;

///TFtdcBoolType是一个布尔型类型
/////////////////////////////////////////////////////////////////////////
typedef int STD_BoolType;



///TFtdcRatioType是一个比率类型
/////////////////////////////////////////////////////////////////////////
typedef double STD_RatioType;


///TFtdcTradingSegmentSNType是一个交易阶段编号类型
/////////////////////////////////////////////////////////////////////////
typedef int STD_TradingSegmentSNType;



///TFtdcSequenceNoType是一个序号类型
/////////////////////////////////////////////////////////////////////////
typedef int STD_SequenceNoType;

///TFtdcOrderSysIDType是一个报单编号类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_OrderSysIDType[21];



///TFtdcSettlementGroupIDType是一个结算组代码类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_SettlementGroupIDType[9];



//订单注释 
typedef char STD_OrderComment[23];


///TFtdcTradeIDType是一个成交编号类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_TradeIDType[21];

///TFtdcOrderRefType是一个报单引用类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_OrderRefType[13];


///TFtdcCombHedgeFlagType是一个组合投机套保标志类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_CombHedgeFlagType[5];


///TFtdcSettlementIDType是一个结算编号类型
/////////////////////////////////////////////////////////////////////////
typedef int STD_SettlementIDType;


///TFtdcErrorIDType是一个错误代码类型
/////////////////////////////////////////////////////////////////////////
typedef int STD_ErrorIDType;

///TFtdcErrorMsgType是一个错误信息类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_ErrorMsgType[81];


typedef int STD_RecordCountType;


/////////////////////////////////////////////////////////////////////////
///TFtdcIPAddressType是一个IP地址类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_IPAddressType[33];

/////////////////////////////////////////////////////////////////////////
///TFtdcOldIPAddressType是一个IP地址类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_OldIPAddressType[16];


// 订单撤单标志 
#define DEL_START    2  // 发送了撤单请求
#define DEL_REQ_DEFAUT  -1  // 撤单请求失败 
#define DEL_DEFAUT  -2  // 撤单校验失败 
#define DEL_SUCCESS  1
#define NO_DEL       0
typedef char STD_DelResultype;


///TFtdcProductClassType是一个产品类型类型
/////////////////////////////////////////////////////////////////////////
///期货
#define STD_SYMBOL_Futures '1'
///期货期权
#define STD_SYMBOL_Options '2'
///组合
#define STD_SYMBOL_Combination '3'
///即期
#define STD_SYMBOL_Spot '4'
///期转现
#define STD_SYMBOL_EFP '5'
///现货期权
#define STD_SYMBOL_SpotOption '6'

///股票
#define STD_SYMBOL_Stock '7'

///股票期权
#define STD_SYMBOL_Stock_Option '8'

//上证
#define STD_SYMBOL_SH_Stock '9'

// 深证 
#define STD_SYMBOL_SZ_Stock '10'

#define STD_SYMBOL_Stock_index_Option   '11'

//黄金

#define STD_SYMBOL_SGE   '13'

///未知
#define STD_SYMBOL_UNKNOW 'N'

typedef char STD_ProductClassType;




///合约生命周期状态类型
/////////////////////////////////////////////////////////////////////////
///未上市
#define THOST_FTDC_IP_NotStart '0'
///上市
#define THOST_FTDC_IP_Started '1'
///停牌
#define THOST_FTDC_IP_Pause '2'
///到期
#define THOST_FTDC_IP_Expired '3'

typedef char STD_InstLifePhaseType;



///TFtdcPositionTypeType是一个持仓类型类型
/////////////////////////////////////////////////////////////////////////
///净持仓
#define THOST_FTDC_PT_Net '1'
///综合持仓
#define THOST_FTDC_PT_Gross '2'

typedef char STD_PositionTypeType;


///TFtdcPositionDateTypeType是一个持仓日期类型类型
/////////////////////////////////////////////////////////////////////////
///使用历史持仓
#define THOST_FTDC_PDT_UseHistory '1'
///不使用历史持仓
#define THOST_FTDC_PDT_NoUseHistory '2'

typedef char STD_PositionDateTypeType;




///TFtdcMaxMarginSideAlgorithmType是一个大额单边保证金算法类型
/////////////////////////////////////////////////////////////////////////
///不使用大额单边保证金算法
#define THOST_FTDC_MMSA_NO '0'
///使用大额单边保证金算法
#define THOST_FTDC_MMSA_YES '1'

typedef char STD_MaxMarginSideAlgorithmType;




///TFtdcOptionsTypeType是一个期权类型类型
/////////////////////////////////////////////////////////////////////////
///看涨
#define THOST_FTDC_CP_CallOptions '1'
///看跌
#define THOST_FTDC_CP_PutOptions '2'

typedef char STD_OptionsTypeType;






///TFtdcCombinationTypeType是一个组合类型类型
/////////////////////////////////////////////////////////////////////////
///期货组合
#define THOST_FTDC_COMBT_Future '0'
///垂直价差BUL
#define THOST_FTDC_COMBT_BUL '1'
///垂直价差BER
#define THOST_FTDC_COMBT_BER '2'
///跨式组合
#define THOST_FTDC_COMBT_STD '3'
///宽跨式组合
#define THOST_FTDC_COMBT_STG '4'
///备兑组合
#define THOST_FTDC_COMBT_PRT '5'
///时间价差组合
#define THOST_FTDC_COMBT_CLD '6'

typedef char STD_CombinationTypeType;





///TFtdcInstrumentStatusType是一个合约交易状态类型
/////////////////////////////////////////////////////////////////////////
///开盘前
#define THOST_FTDC_IS_BeforeTrading '0'
///非交易
#define THOST_FTDC_IS_NoTrading '1'
///连续交易
#define THOST_FTDC_IS_Continous '2'
///集合竞价报单
#define THOST_FTDC_IS_AuctionOrdering '3'
///集合竞价价格平衡
#define THOST_FTDC_IS_AuctionBalance '4'
///集合竞价撮合
#define THOST_FTDC_IS_AuctionMatch '5'
///收盘
#define THOST_FTDC_IS_Closed '6'

typedef char STD_InstrumentStatusType;






///TFtdcInstStatusEnterReasonType是一个品种进入交易状态原因类型
/////////////////////////////////////////////////////////////////////////
///自动切换
#define THOST_FTDC_IER_Automatic '1'
///手动切换
#define THOST_FTDC_IER_Manual '2'
///熔断
#define THOST_FTDC_IER_Fuse '3'

typedef char STD_InstStatusEnterReasonType;




///TFtdcOrderSubmitStatusType是一个报单提交状态类型
/////////////////////////////////////////////////////////////////////////
///已经提交
#define THOST_FTDC_OSS_InsertSubmitted '0'
///撤单已经提交
#define THOST_FTDC_OSS_CancelSubmitted '1'
///修改已经提交
#define THOST_FTDC_OSS_ModifySubmitted '2'
///已经接受
#define THOST_FTDC_OSS_Accepted '3'
///报单已经被拒绝
#define THOST_FTDC_OSS_InsertRejected '4'
///撤单已经被拒绝
#define THOST_FTDC_OSS_CancelRejected '5'
///改单已经被拒绝
#define THOST_FTDC_OSS_ModifyRejected '6'

typedef char STD_OrderSubmitStatusType;



/////////////////////////////////////////////////////////////////////////
///TFtdcOrderPriceTypeType是一个报单价格条件类型
/////////////////////////////////////////////////////////////////////////
///任意价
#define THOST_FTDC_OPT_AnyPrice '1'
///限价
#define THOST_FTDC_OPT_LimitPrice '2'
///最优价
#define THOST_FTDC_OPT_BestPrice '3'
///最新价
#define THOST_FTDC_OPT_LastPrice '4'
///最新价浮动上浮1个ticks
#define THOST_FTDC_OPT_LastPricePlusOneTicks '5'
///最新价浮动上浮2个ticks
#define THOST_FTDC_OPT_LastPricePlusTwoTicks '6'
///最新价浮动上浮3个ticks
#define THOST_FTDC_OPT_LastPricePlusThreeTicks '7'
///卖一价
#define THOST_FTDC_OPT_AskPrice1 '8'
///卖一价浮动上浮1个ticks
#define THOST_FTDC_OPT_AskPrice1PlusOneTicks '9'
///卖一价浮动上浮2个ticks
#define THOST_FTDC_OPT_AskPrice1PlusTwoTicks 'A'
///卖一价浮动上浮3个ticks
#define THOST_FTDC_OPT_AskPrice1PlusThreeTicks 'B'
///买一价
#define THOST_FTDC_OPT_BidPrice1 'C'
///买一价浮动上浮1个ticks
#define THOST_FTDC_OPT_BidPrice1PlusOneTicks 'D'
///买一价浮动上浮2个ticks
#define THOST_FTDC_OPT_BidPrice1PlusTwoTicks 'E'
///买一价浮动上浮3个ticks
#define THOST_FTDC_OPT_BidPrice1PlusThreeTicks 'F'
///五档价
#define THOST_FTDC_OPT_FiveLevelPrice 'G'

typedef char STD_OrderPriceTypeType;



///TFtdcDirectionType是一个买卖方向类型
/////////////////////////////////////////////////////////////////////////
///买
#define THOST_FTDC_D_Buy '0'
///卖
#define THOST_FTDC_D_Sell '1'

typedef char STD_DirectionType;


///TFtdcCombOffsetFlagType是一个组合开平标志类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_CombOffsetFlagType[5];




//订单状态  
#define UNKNOW  0    //未知
#define SEND	1
#define QUEUING 2    //排队挂单
#define PART_TRADED  3 //部分成交
#define PART_TRADED_CANCELED  4 //部分成交部分撤单
#define CANCELED 5	 //全部撤销
#define TRADED   6	 //全部成交   
#define ERROR_REQ  7  // 报单请求失败

typedef int STD_OrderStateType;



/////////////////////////////////////////////////////////////////////////
///TFtdcTimeConditionType是一个有效期类型类型
/////////////////////////////////////////////////////////////////////////
///立即完成，否则撤销
#define THOST_FTDC_TC_IOC '1'
///本节有效
#define THOST_FTDC_TC_GFS '2'
///当日有效
#define THOST_FTDC_TC_GFD '3'
///指定日期前有效
#define THOST_FTDC_TC_GTD '4'
///撤销前有效
#define THOST_FTDC_TC_GTC '5'
///集合竞价有效
#define THOST_FTDC_TC_GFA '6'

typedef char STD_TimeConditionType;


///TFtdcVolumeConditionType是一个成交量类型类型
/////////////////////////////////////////////////////////////////////////
///任何数量
#define THOST_FTDC_VC_AV '1'
///最小数量
#define THOST_FTDC_VC_MV '2'
///全部数量
#define THOST_FTDC_VC_CV '3'

typedef char STD_VolumeConditionType;


///TFtdcContingentConditionType是一个触发条件类型
/////////////////////////////////////////////////////////////////////////
///立即
#define THOST_FTDC_CC_Immediately '1'
///止损
#define THOST_FTDC_CC_Touch '2'
///止赢
#define THOST_FTDC_CC_TouchProfit '3'
///预埋单
#define THOST_FTDC_CC_ParkedOrder '4'
///最新价大于条件价
#define THOST_FTDC_CC_LastPriceGreaterThanStopPrice '5'
///最新价大于等于条件价
#define THOST_FTDC_CC_LastPriceGreaterEqualStopPrice '6'
///最新价小于条件价
#define THOST_FTDC_CC_LastPriceLesserThanStopPrice '7'
///最新价小于等于条件价
#define THOST_FTDC_CC_LastPriceLesserEqualStopPrice '8'
///卖一价大于条件价
#define THOST_FTDC_CC_AskPriceGreaterThanStopPrice '9'
///卖一价大于等于条件价
#define THOST_FTDC_CC_AskPriceGreaterEqualStopPrice 'A'
///卖一价小于条件价
#define THOST_FTDC_CC_AskPriceLesserThanStopPrice 'B'
///卖一价小于等于条件价
#define THOST_FTDC_CC_AskPriceLesserEqualStopPrice 'C'
///买一价大于条件价
#define THOST_FTDC_CC_BidPriceGreaterThanStopPrice 'D'
///买一价大于等于条件价
#define THOST_FTDC_CC_BidPriceGreaterEqualStopPrice 'E'
///买一价小于条件价
#define THOST_FTDC_CC_BidPriceLesserThanStopPrice 'F'
///买一价小于等于条件价
#define THOST_FTDC_CC_BidPriceLesserEqualStopPrice 'H'

typedef char STD_ContingentConditionType;


///TFtdcForceCloseReasonType是一个强平原因类型
/////////////////////////////////////////////////////////////////////////
///非强平
#define THOST_FTDC_FCC_NotForceClose '0'
///资金不足
#define THOST_FTDC_FCC_LackDeposit '1'
///客户超仓
#define THOST_FTDC_FCC_ClientOverPositionLimit '2'
///会员超仓
#define THOST_FTDC_FCC_MemberOverPositionLimit '3'
///持仓非整数倍
#define THOST_FTDC_FCC_NotMultiple '4'
///违规
#define THOST_FTDC_FCC_Violation '5'
///其它
#define THOST_FTDC_FCC_Other '6'
///自然人临近交割
#define THOST_FTDC_FCC_PersonDeliv '7'

typedef char STD_ForceCloseReasonType;

///TFtdcBusinessUnitType是一个业务单元类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_BusinessUnitType[21];

///TFtdcBusinessUnitType是一个业务单元类型
/////////////////////////////////////////////////////////////////////////
typedef char STD_BusinessUnitType[21];



///TFtdcPosiDirectionType是一个持仓多空方向类型
/////////////////////////////////////////////////////////////////////////
///净
#define THOST_FTDC_PD_Net '1'
///多头
#define THOST_FTDC_PD_Long '2'
///空头
#define THOST_FTDC_PD_Short '3'

typedef char STD_PosiDirectionType;





///TFtdcHedgeFlagType是一个投机套保标志类型
/////////////////////////////////////////////////////////////////////////
///投机
#define THOST_FTDC_HF_Speculation '1'
///套利
#define THOST_FTDC_HF_Arbitrage '2'
///套保
#define THOST_FTDC_HF_Hedge '3'
///做市商
#define THOST_FTDC_HF_MarketMaker '5'

typedef char STD_HedgeFlagType;




///TFtdcPositionDateType是一个持仓日期类型
/////////////////////////////////////////////////////////////////////////
///今日持仓
#define THOST_FTDC_PSD_Today '1'
///历史持仓
#define THOST_FTDC_PSD_History '2'

typedef char STD_PositionDateType;


/////---------------------------------------------------------------------/////
// API接口的类型  ， 若没有特别说明， 皆为期货交易柜台系统 

#define  STD_API_CLASS_CTP			1		// 上期所 CTP系统
#define  STD_API_CLASS_CTP_mini		2		// 上期所 CTP Mini系统
#define  STD_API_CLASS_ShengLi		3       // 盛立极速版 系统
#define  STD_API_CLASS_ShengLi_ETH	4       // 盛立ETH版 系统
#define  STD_API_CLASS_FeiMa		5		// 中金所飞马 系统
#define  STD_API_CLASS_XeLe			6		// 艾克朗科 系统

#define  STD_API_CLASS_SIMNOW			100		// simnow test 7x24 系统
#define  STD_API_CLASS_BACKTEST			101		// ���ػز�ϵͳ

typedef  int     STD_API_CLASS_TEYE;

#define  STD_API_CLASS_CTP_NAME			"CTP"		// 上期所 CTP系统
#define  STD_API_CLASS_CTP_mini_NAME	"CTP Mini"		// 上期所 CTP Mini系统
#define  STD_API_CLASS_ShengLi_NAME		"ShengLi"       // 盛立极速版 系统
#define  STD_API_CLASS_ShengLi_ETH_NAME	"ShengLiETH"       // 盛立ETH版 系统
#define  STD_API_CLASS_FeiMa_NAME		"FeiMa"		// 中金所飞马 系统
#define  STD_API_CLASS_XeLe_NAME		"Xele"		// 艾克朗科 系统

#define  STD_API_CLASS_SIMNOW_NAME		"SimNow"		// simnow test 7x24 系统
#define  STD_API_CLASS_BACKTEST_NAME	"BackTest"		// ���ػز�ϵͳ

#define GET_API_CLASS_NAME( x )  ( x##_NAME )   //  根据 类型值 获得类型名 

/////---------------------------------------------------------------------/////




//交易所合约代码 ，  //out: -1：unknown 0: CFFEX  1:SHFE  2:DCE  3:CZCE  4: INE (上海能源) 
// 交易所宏定义 0: CFFEX  1 : SHFE  2 : DCE  3 : CZCE

#define UNKNOW_EXCHANGE	(-1)
#define CFFEX	(0)			// 中金所 
#define SHFE	(1)			// 上海期货
#define DCE		(2)			// 大商所 
#define CZCE	(3)			// 郑商所
#define INE		(4)			// 能源中心 
#define GFEX    (5)

#define SHCS	(15)			// 上海股票
#define SZCS	(16)			// 深圳股票
#define SGE		(17)			// 上海金交所

typedef  int   EXChange_Num_type;



//  交易、行情 服务状态  
#define   STD_SERVER_INIT			0 //      初始态 
#define   STD_SERVER_DISCONNECT		1 //      已断开  
#define   STD_SERVER_CONNECT		2 //      连接上 

#define   STD_SERVER_CONNECT_AGAIN  3     // 从 10 状态 到前置重新连接


#define   STD_CLIENT_AUTH_FAIL		5  //     认证失败 
#define   STD_CLIENT_AUTH_OK		6  //     认证通过





#define   STD_SERVER_LOGINERR		8 //      登录错误
#define   STD_SERVER_LOGIN			9 //      登录上  
#define   STD_SERVER_LOGOUT			10 //      已登出


#define   STD_SERVER_CONFIRM_SETTLE	14 //	  已确认账单 
#define   STD_SERVER_QRY_ACCOUNT	15 //	  已查询账户
#define   STD_SERVER_QRY_SYMBOL		16 //	  已合约信息


#define   STD_SERVER_QRY_POSITION	20 //	  已查询持仓
#define   STD_SERVER_QRY_ORDERS		21 //	  已查询订单  

#define   STD_SERVER_DISCONNECT_FROM_NORMAL	22   // 从正常状态断开 ， 后续需要重连  


#define   STD_SERVER_UNKNOWN		-100 //      未知 
typedef  char   STD_SERVER_STATE;











//  新的订单类型 ----------------------------------------------------
/*
bit0: define buy or sell,  0: sell  1:buy
bit1: define open or close ,  0 : open   1:  close

bit2:  define Yesterday position close ;
bit3:  define streagy open or close， 0：open    1：close
bit4:  define help flag   0: not help  1: help

  
bit6：  use IOC，		1： use IOC    
bit7：  use FAK/FOK   1: FOK   0: FAK


策略订单属性：   开仓单  平仓单   平仓辅助单   开仓辅助单
*/

#define bit_buy      0  //  基础属性买卖
//#define bit_close    1  //  基础属性开平

#define bit_open    1  //  基础属性开平 ,  由于昨仓只有平仓操作， 所以此处 必须以 open 为 1 .

#define bit_yesterd  2  //  昨仓标记 

#define bit_ea_close	4    //  表示在策略层面上的 开平仓，  有时候对锁是开仓操作 ， 但确是平仓的意义
#define bit_ea_help		5    //  辅助单标记 


#define bit_IOC      6  //  IOC 订单标记
#define bit_FOK		 7  //  FOK/FAK 订单标记 


#define CLOSE_BUY_   0x00   //   卖平   平多
#define CLOSE_SELL_  0x01   //	  买平   平空
#define OPEN_SELL_   0x02   //   卖开   开空 
#define OPEN_BUY_    0x03   //	  买开 	 开多
#define CLOSE_BUY_Y_	( CLOSE_BUY_ | (0x01<<bit_yesterd) )   // 卖平昨
#define CLOSE_SELL_Y_   ( CLOSE_SELL_ | (0x01<<bit_yesterd) )   // 买平昨

#if 0
#define OPEN_SELL_   0   //   卖开   开空 
#define OPEN_BUY_    1   //	  买开 	 开多
#define CLOSE_BUY_   2   //   卖平   平多
#define CLOSE_SELL_  3   //	  买平   平空
#define CLOSE_BUY_Y_	( CLOSE_BUY_ | (0x01<<bit_yesterd) )   // 卖平昨
#define CLOSE_SELL_Y_   ( CLOSE_SELL_ | (0x01<<bit_yesterd) )   // 买平昨
#endif

#define IS_BUY_ORDER(flag)  (0!=(flag&(0x01<<bit_buy)))
#define IS_CLOSE_ORDER(flag) (0==(flag&(0x01<<bit_open)))
#define IS_CLOSE_Y_ORDER(flag) (0!=(flag&(0x01<<bit_yesterd)))
#define IS_EA_CLOSE_ORDER(flag) (0!=(flag&(0x01<<bit_ea_close)))
#define IS_EA_HELP_ORDER(flag)  (0!=(flag&(0x01<<bit_ea_help)))

#define IS_IOC_ORDER(flag)	(0!=(flag&(0x01<<bit_IOC)))
#define IS_FOK_ORDER(flag)	(0!=(flag&(0x01<<bit_FOK)))

#define SET_EA_HELP_BIT(flag)   (flag|(0x01<<bit_ea_help))
#define CLR_EA_HELP_BIT(flag)	 (flag&(~(0x01 << bit_ea_help)))   

#define SET_EA_CLOSE_BIT(flag)   (flag|(0x01<<bit_ea_close))
#define CLR_EA_CLOSE_BIT(flag)	 (flag&(~(0x01 << bit_ea_close)))  

#define ORDER_TYPE_OFFSET(flag)	 (flag&0x07)

//#define 


//策略订单属性：   开仓单  平仓单   平仓辅助单   开仓辅助单
#define EA_OPEN  0x00
#define EA_CLOSE 0x01
#define EA_OPEN_HELP 0x02
#define EA_CLOSE_HELP 0x03




#define ERROR_		 8 ///  订单类型错误标记值
#define TYPE_UNKNOW  16 /// 订单类型未知标记值

typedef  unsigned char STD_TOrder_Type;

//  新的订单类型 ----------------------------------------------------









//  系统发送消息 回调函数类型  
typedef int(*sendmassag)(int id, void *data);



//  界面消息类型定义  

// 创建订单  //(  Tcmd_order*)

#define  STD_MSG_ORDER_SEND_OK				1    
#define  STD_MSG_ORDER_SEND_FAIL			2

// 更新 订单 
#define  STD_MSG_ORDER_SEND_ERR				9	//  校验错误 
#define  STD_MSG_ORDER_QUING				10
#define  STD_MSG_ORDER_CANCELED				11
#define  STD_MSG_ORDER_PARTTRADE			12
#define  STD_MSG_ORDER_PARTTRADE_CANCELED	13
#define  STD_MSG_ORDER_ALLTRADE				14

#define  STD_MSG_ORDER_CANCELERR			15

// 成交信息 
#define  STD_MSG_ORDER_TRADEINFO			20

// 通知 
#define  STD_MSG_NOTICE						30	//(cosnt char *)

// 操作回报
#define  STD_MSG_OPERATE_RESULT				40	// (0:1)   

// LOG 信息 
#define  STD_MSG_LOG						50	// (0:1)  
#define  STD_MSG_MD_LOG						51	// (cosnt char *)  
#define  STD_MSG_TD_LOG						52	// (cosnt char *)

#define  STD_MSG_TICK_DATA					60  // ( *tick)

 // 策略更新 
#define  STD_MSG_STRATEGY					70  // ( *ea )


// sp 策略 边界更新 
#define STD_SP_BAND_UPDATE					80 // struct { int dir , double up ,double dn}


//  定义小单界面消息值   (data)

#define  STD_MSG_OPERATE_TD_LOGIN				10	// (0:1)  
#define  STD_MSG_OPERATE_TD_OFFLINE				11	// (0:1)  
#define  STD_MSG_OPERATE_MD_LOGIN				12	// (0:1)  
#define  STD_MSG_OPERATE_MD_OFFLINE				13	// (0:1)  

#define  STD_MSG_OPERATE_AUTH_OK				14	// (0:1)  
#define  STD_MSG_OPERATE_AUTH_FAIL				15	// (0:1)  



//  系统策略库支持的最大可用策略数量
#define   STD_MAX_SUPPORT_STRATEGY   128

//  系统指标库库支持的最大可用指标数量
#define   STD_MAX_SUPPORT_INDICATER   256




// 定义系统名称 

#define   SYSTEM_NAME "client_XLQuant_1.0.0"


#define   STD_NOT_SUPPORT   (-111)    ///   函数的返回值  ，  可以用在 char 或者 int 类型中 ， 表示当前接口底层不支持    



//  

#define container_of(ptr, type, member)  ( (type*)((char*)ptr - offsetof(type, member)) )





//  about  log  

//  通用宏定义 

#define STD_LOG_BUFFER_SIZE   1500  //  定义 log 缓冲区的大小 

#define STD_LOG_SWITCH     FALSE //TRUE // false   //  系统log 宏开关 



#define      TD_LOG_ID     0
#define      MD_LOG_ID     1
#define      TD_STATE_ID     2      // "OK"  表示连接上 ， 否则未连接 
#define      MD_STATE_ID     3      //
#define      EA_LOG_ID     4      //
#define      EA_TRADE_LOG_ID     5      //
#define      SETTLE_MENT_ID     6 // 结算信息
#define      UI_MD_LOG  7   //输出到 MD界面
#define      UI_TD_LOG  8   //输出到 MD界面

typedef  char   STD_LOG_ID;



 

#define MAX_TD_API_TYPE_NUM    5   //  系统支持的 交易接口类型的 最大数量
#define MAX_MD_API_TYPE_NUM    5   //  系统支持的 行情接口类型的 最大数量


// ����source_manag ģ�����������������ͣ��з����ͣ�����Ӱ�� ��Դ�Ŀ��÷�Χ ��T������ ��һ����Աid��������Ҫ���䱣��һ�¡�
typedef  int  type_int_;
 